<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><title>ACS_Classes - NewAC</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.4 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ACS_Classes"></a>ACS_Classes</h1><div class=CBody><p>NewAC core classes.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ACS_Classes" >ACS_Classes</a></td><td class=SDescription>NewAC core classes.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFileStream" >TAuFileStream</a></td><td class=SDescription>TFileStream analog that handles Unicode.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuThread" >TAuThread</a></td><td class=SDescription>Custom TThread descendant that does something.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuInput" >TAuInput</a></td><td class=SDescription>The ancestor class for all input components.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.GetData" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">GetData</a></td><td class=SDescription>This method retrieves input data. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuInput.CopyData" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">CopyData</a></td><td class=SDescription>Writes no more than BufferSize data into Buffer</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.FillBuffer" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">FillBuffer</a></td><td class=SDescription>The same as <a href="#TAuInput.CopyData" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">CopyData</a> but tries to fill the Buffer. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuInput.Init" id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">Init</a></td><td class=SDescription>This method prepares input component for reading data. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.Flush" id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">Flush</a></td><td class=SDescription>This method closes the current input (opened with <a href="#TAuInput.Init" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">Init</a>), clearing up all temporary structures allocated during data transfer. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.BitsPerSample" >BitsPerSample</a></td><td class=SDescription>The number of bits per sample in the input stream. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.Position" >Position</a></td><td class=SDescription>The current reading position in the input stream in bytes.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.SampleRate" >SampleRate</a></td><td class=SDescription>The input stream sample rate in Herz.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.Channels" >Channels</a></td><td class=SDescription>The number of channels in the input stream. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.Size" >Size</a></td><td class=SDescription>A read only property which returns input data size in bytes. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.TotalSamples" >TotalSamples</a></td><td class=SDescription>A read only property which returns number of samples (frames) in the input stream. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.TotalTime" >TotalTime</a></td><td class=SDescription>A read only property which returns input playback time in seconds. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.Seekable" >Seekable</a></td><td class=SDescription>This read only property indicates when the input is seekable.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuOutput" >TAuOutput</a></td><td class=SDescription>The ancestor class for all output components.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuOutput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Pause" id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMouseOut="HideTip('tt6')">Pause</a></td><td class=SDescription>Pauses the output.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuOutput.Resume" id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut="HideTip('tt7')">Resume</a></td><td class=SDescription>Resumes previously paused output.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Run" id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">Run</a></td><td class=SDescription>After an input component has been assigned, call Run to start the audio processing chain. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuOutput.BlockingRun" id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">BlockingRun</a></td><td class=SDescription>In some situations, such as console programs or DUnit test units, background processing is not desirable. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Stop" id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">Stop</a></td><td class=SDescription>Stops the busy component or does nothing if the component is idle.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuOutput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Delay" >Delay</a></td><td class=SDescription>Sets the delay, affects CPU usage.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.ThreadPriority" >ThreadPriority</a></td><td class=SDescription>This property allows you to set the priority of the output thread.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Progress" >Progress</a></td><td class=SDescription>Read Progress to get the output progress in percents. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.Status" >Status</a></td><td class=SDescription>This read only property indicates the output component&rsquo;s current status. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.TimeElapsed" >TimeElapsed</a></td><td class=SDescription>The time in seconds that has passed since the playback was started. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.ExceptionMessage" >ExceptionMessage</a></td><td class=SDescription>Most exceptions that may occur during NewAC operation are suppressed. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Input" >Input</a></td><td class=SDescription>This property allows you to set the input component for the output component. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.OnDone" >OnDone</a></td><td class=SDescription>Raised when the component has finished its job or was stopped asynchronously. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.OnProgress" >OnProgress</a></td><td class=SDescription>OnProgress event is raised periodically to indicate output progress. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.OnThreadException" >OnThreadException</a></td><td class=SDescription>This event is raised if an exception has occurred. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuStreamedInput" >TAuStreamedInput</a></td><td class=SDescription>A descendant of <a href="#TAuInput" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">TAuInput</a> to deal with streams.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.SeekInternal" id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">SeekInternal</a></td><td class=SDescription>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.EndSample" >EndSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuStreamedInput.Loop" >Loop</a></td><td class=SDescription>If set to True, the input loops (i.e. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.StartSample" >StartSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuStreamedInput.Stream" >Stream</a></td><td class=SDescription>Use this property to set the input data stream for the input component. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.Seek" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">Seek</a></td><td class=SDescription>This method allows you to change the current playing position in the the input component. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuStreamedOutput" >TAuStreamedOutput</a></td><td class=SDescription>A descendant of <a href="#TAuOutput" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">TAuOutput</a> to deal with streams.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFileIn" >TAuFileIn</a></td><td class=SDescription>A descendant of <a href="#TAuStreamedInput" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt15', 'link17')" onMouseOut="HideTip('tt15')">TAuStreamedInput</a> to deal with files and streams. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFileIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.OpenFile" id=link18 onMouseOver="ShowTip(event, 'tt16', 'link18')" onMouseOut="HideTip('tt16')">OpenFile</a></td><td class=SDescription>Opens the file or stream if it is not already open. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFileIn.CloseFile" id=link19 onMouseOver="ShowTip(event, 'tt17', 'link19')" onMouseOut="HideTip('tt17')">CloseFile</a></td><td class=SDescription>Closes the file opened with <a href="#TAuFileIn.OpenFile" class=LFunction id=link20 onMouseOver="ShowTip(event, 'tt16', 'link20')" onMouseOut="HideTip('tt16')">OpenFile</a>. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.SetStartTime" id=link21 onMouseOver="ShowTip(event, 'tt18', 'link21')" onMouseOut="HideTip('tt18')">SetStartTime</a></td><td class=SDescription>This function is a wrapper around StartSample property, provided for convenience. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFileIn.SetEndTime" id=link22 onMouseOver="ShowTip(event, 'tt19', 'link22')" onMouseOut="HideTip('tt19')">SetEndTime</a></td><td class=SDescription>This function is a wrapper around EndSample property, provided for convenience. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.Valid" >Valid</a></td><td class=SDescription>Read this property to determine if the file is valid. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuFileIn.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuTaggedFileIn" >TAuTaggedFileIn</a></td><td class=SDescription>Descends from <a href="#TAuFileIn" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt20', 'link23')" onMouseOut="HideTip('tt20')">TAuFileIn</a>, this class is an ancestor of the file input components that use tags.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuTaggedFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuTaggedFileIn.CommonTags" >CommonTags</a></td><td class=SDescription>Contains the tag values common to the different tag formats</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFileOut" >TAuFileOut</a></td><td class=SDescription>A descendant of <a href="#TAuStreamedOutput" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt21', 'link24')" onMouseOut="HideTip('tt21')">TAuStreamedOutput</a> to deal with files and streams.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFileOut.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileOut.FileMode" >FileMode</a></td><td class=SDescription>This property can take one of two values foRewrite (default) and foAppend. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuFileOut.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileOut.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuFileOut.ShareMode" >ShareMode</a></td><td class=SDescription>This property stores the share mode flags (like fmShareExclusive, fmShareDenyRead) that are applied to the files being created. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuTaggedFileOut" >TAuTaggedFileOut</a></td><td class=SDescription>Descends from <a href="#TAuFileOut" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt22', 'link25')" onMouseOut="HideTip('tt22')">TAuFileOut</a>, this class is an ancestor of the file output components that use Id3v* tags.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuConverter" >TAuConverter</a></td><td class=SDescription>Descends from <a href="#TAuInput" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt11', 'link26')" onMouseOut="HideTip('tt11')">TAuInput</a>, the base class for all converter components. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuConverter.Input" >Input</a></td><td class=SDescription>Like the output components, converters can be assigned an input. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAudioTap" >TAudioTap</a></td><td class=SDescription>This is the base class for all &ldquo;audio tap components&rdquo;. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioTap.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.StartRecord" id=link27 onMouseOver="ShowTip(event, 'tt23', 'link27')" onMouseOut="HideTip('tt23')">StartRecord</a></td><td class=SDescription>Call this method to start recording audio data passing through an audio tap.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAudioTap.StopRecord" id=link28 onMouseOver="ShowTip(event, 'tt24', 'link28')" onMouseOut="HideTip('tt24')">StopRecord</a></td><td class=SDescription>Call this method to stop recording.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.PauseRecord" id=link29 onMouseOver="ShowTip(event, 'tt25', 'link29')" onMouseOut="HideTip('tt25')">PauseRecord</a></td><td class=SDescription>Call this method to pause recording.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAudioTap.ResumeRecord" id=link30 onMouseOver="ShowTip(event, 'tt26', 'link30')" onMouseOut="HideTip('tt26')">ResumeRecord</a></td><td class=SDescription>Call this method to resume paused recording.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioTap.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.Status" >Status</a></td><td class=SDescription>Read this property to get the component status. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAudioTap.WideFileName" >WideFileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in Unicode charset. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.FileName" >FileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in 8-bit charset. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFileStream"></a>TAuFileStream</h2><div class=CBody><p>TFileStream analog that handles Unicode.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuThread"></a>TAuThread</h2><div class=CBody><p>Custom TThread descendant that does something.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuInput"></a>TAuInput</h2><div class=CBody><p>The ancestor class for all input components.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.GetData" id=link31 onMouseOver="ShowTip(event, 'tt1', 'link31')" onMouseOut="HideTip('tt1')">GetData</a></td><td class=SDescription>This method retrieves input data. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuInput.CopyData" id=link32 onMouseOver="ShowTip(event, 'tt2', 'link32')" onMouseOut="HideTip('tt2')">CopyData</a></td><td class=SDescription>Writes no more than BufferSize data into Buffer</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.FillBuffer" id=link33 onMouseOver="ShowTip(event, 'tt3', 'link33')" onMouseOut="HideTip('tt3')">FillBuffer</a></td><td class=SDescription>The same as <a href="#TAuInput.CopyData" class=LFunction id=link34 onMouseOver="ShowTip(event, 'tt2', 'link34')" onMouseOut="HideTip('tt2')">CopyData</a> but tries to fill the Buffer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuInput.Init" id=link35 onMouseOver="ShowTip(event, 'tt4', 'link35')" onMouseOut="HideTip('tt4')">Init</a></td><td class=SDescription>This method prepares input component for reading data. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.Flush" id=link36 onMouseOver="ShowTip(event, 'tt5', 'link36')" onMouseOut="HideTip('tt5')">Flush</a></td><td class=SDescription>This method closes the current input (opened with <a href="#TAuInput.Init" class=LFunction id=link37 onMouseOver="ShowTip(event, 'tt4', 'link37')" onMouseOut="HideTip('tt4')">Init</a>), clearing up all temporary structures allocated during data transfer. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.BitsPerSample" >BitsPerSample</a></td><td class=SDescription>The number of bits per sample in the input stream. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.Position" >Position</a></td><td class=SDescription>The current reading position in the input stream in bytes.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.SampleRate" >SampleRate</a></td><td class=SDescription>The input stream sample rate in Herz.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.Channels" >Channels</a></td><td class=SDescription>The number of channels in the input stream. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.Size" >Size</a></td><td class=SDescription>A read only property which returns input data size in bytes. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.TotalSamples" >TotalSamples</a></td><td class=SDescription>A read only property which returns number of samples (frames) in the input stream. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.TotalTime" >TotalTime</a></td><td class=SDescription>A read only property which returns input playback time in seconds. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.Seekable" >Seekable</a></td><td class=SDescription>This read only property indicates when the input is seekable.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.GetData"></a>GetData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure GetData(</td><td class=PParameter nowrap>var Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>var Bytes :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>); virtual</td></tr></table></td></tr></table></blockquote><p>This method retrieves input data.&nbsp; You specify the number of bytes you want to get, but you may get less and it should not be considered as an end of input indication.&nbsp; When the end of input is reached GetData sets Buffer to nil and Bytes to 0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer</td><td class=CDLDescription>This is the variable where GetData will put a pointer to a data buffer.&nbsp; Unlike many other data reading functions GetData doesn&rsquo;t take our buffer pointer but provides you with its own.</td></tr><tr><td class=CDLEntry>Bytes</td><td class=CDLDescription>When you call GetData you pass to Bytes the number of bytes you want to get.&nbsp; When the method returns the Bytes variable holds the number of bytes in the Buffer.</td></tr></table><h4 class=CHeading>Note</h4><p>Usually you should not call this method directly.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.CopyData"></a>CopyData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function CopyData(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;Integer</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote><p>Writes no more than BufferSize data into Buffer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer: Pointer</td><td class=CDLDescription>the buffer to write to</td></tr><tr><td class=CDLEntry>BufferSize: Integer</td><td class=CDLDescription>the number of bytes to write</td></tr></table></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.FillBuffer"></a>FillBuffer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function FillBuffer(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;LongWord;</td></tr><tr><td></td><td class=PParameter nowrap>var EOF :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote><p>The same as <a href="#TAuInput.CopyData" class=LFunction id=link38 onMouseOver="ShowTip(event, 'tt2', 'link38')" onMouseOut="HideTip('tt2')">CopyData</a> but tries to fill the Buffer.&nbsp; EOF is set to True if end of data was reached while filling the buffer, the buffer itself may still contain valid data.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer: Pointer</td><td class=CDLDescription>the buffer to write to</td></tr><tr><td class=CDLEntry>BufferSize: Integer</td><td class=CDLDescription>the number of bytes to write</td></tr><tr><td class=CDLEntry>var EOF: Boolean</td><td class=CDLDescription>set to True if end of data was reached while filling the buffer.</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Integer</td><td class=CDLDescription>Number of bytes written</td></tr></table></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Init"></a>Init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Init</td></tr></table></blockquote><p>This method prepares input component for reading data.&nbsp; Usually this method is called internally by the output or converter component to which the input component is assigned.&nbsp; You can call this method if you want to get direct access to the audio stream.&nbsp; In such a case the sequence of calls should look like this.</p><blockquote><pre>InputComponent.Init;
InputComponent.GetData(...); // in a loop
InputComponent.Flush;</pre></blockquote></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Flush"></a>Flush</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Flush</td></tr></table></blockquote><p>This method closes the current input (opened with <a href="#TAuInput.Init" class=LFunction id=link39 onMouseOver="ShowTip(event, 'tt4', 'link39')" onMouseOut="HideTip('tt4')">Init</a>), clearing up all temporary structures allocated during data transfer.&nbsp; Usually this method is called internally by the output or converter component to which the input component is assigned.&nbsp; You can call this method if you want to get direct access to the audio stream.&nbsp; In such a case the sequence of calls should look like this.</p><blockquote><pre>InputComponent.Init;
InputComponent.GetData(...); // in a loop
InputComponent.Flush;</pre></blockquote></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.BitsPerSample"></a>BitsPerSample</h3><div class=CBody><p>The number of bits per sample in the input stream.&nbsp; Possible values are 8, 16, and 24.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Position"></a>Position</h3><div class=CBody><p>The current reading position in the input stream in bytes.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.SampleRate"></a>SampleRate</h3><div class=CBody><p>The input stream sample rate in Herz.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Channels"></a>Channels</h3><div class=CBody><p>The number of channels in the input stream.&nbsp; Possible values are 1 (mono), 2 (stereo)... and may be more.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Size"></a>Size</h3><div class=CBody><p>A read only property which returns input data size in bytes.&nbsp; The value of this property becomes valid after <a href="#TAuInput.Init" class=LFunction id=link40 onMouseOver="ShowTip(event, 'tt4', 'link40')" onMouseOut="HideTip('tt4')">Init</a> has been called.&nbsp; For some inputs (like <a href="ACS_DXAudio-pas.html#TDXAudioIn" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt27', 'link41')" onMouseOut="HideTip('tt27')">TDXAudioIn</a>) the data size may be not known in advance.&nbsp; In this case Size returns -1</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.TotalSamples"></a>TotalSamples</h3><div class=CBody><p>A read only property which returns number of samples (frames) in the input stream.&nbsp; TotalSamples value may be valid only if the <a href="#TAuInput.Size" class=LProperty id=link42 onMouseOver="ShowTip(event, 'tt28', 'link42')" onMouseOut="HideTip('tt28')">Size</a> of the input is known.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.TotalTime"></a>TotalTime</h3><div class=CBody><p>A read only property which returns input playback time in seconds.&nbsp; TotalTime value may be valid only if the <a href="#TAuInput.Size" class=LProperty id=link43 onMouseOver="ShowTip(event, 'tt28', 'link43')" onMouseOut="HideTip('tt28')">Size</a> of the input is known.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Seekable"></a>Seekable</h3><div class=CBody><p>This read only property indicates when the input is seekable.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuOutput"></a>TAuOutput</h2><div class=CBody><p>The ancestor class for all output components.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuOutput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Pause" id=link44 onMouseOver="ShowTip(event, 'tt6', 'link44')" onMouseOut="HideTip('tt6')">Pause</a></td><td class=SDescription>Pauses the output.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuOutput.Resume" id=link45 onMouseOver="ShowTip(event, 'tt7', 'link45')" onMouseOut="HideTip('tt7')">Resume</a></td><td class=SDescription>Resumes previously paused output.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Run" id=link46 onMouseOver="ShowTip(event, 'tt8', 'link46')" onMouseOut="HideTip('tt8')">Run</a></td><td class=SDescription>After an input component has been assigned, call Run to start the audio processing chain. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuOutput.BlockingRun" id=link47 onMouseOver="ShowTip(event, 'tt9', 'link47')" onMouseOut="HideTip('tt9')">BlockingRun</a></td><td class=SDescription>In some situations, such as console programs or DUnit test units, background processing is not desirable. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Stop" id=link48 onMouseOver="ShowTip(event, 'tt10', 'link48')" onMouseOut="HideTip('tt10')">Stop</a></td><td class=SDescription>Stops the busy component or does nothing if the component is idle.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuOutput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Delay" >Delay</a></td><td class=SDescription>Sets the delay, affects CPU usage.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.ThreadPriority" >ThreadPriority</a></td><td class=SDescription>This property allows you to set the priority of the output thread.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Progress" >Progress</a></td><td class=SDescription>Read Progress to get the output progress in percents. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.Status" >Status</a></td><td class=SDescription>This read only property indicates the output component&rsquo;s current status. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.TimeElapsed" >TimeElapsed</a></td><td class=SDescription>The time in seconds that has passed since the playback was started. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.ExceptionMessage" >ExceptionMessage</a></td><td class=SDescription>Most exceptions that may occur during NewAC operation are suppressed. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Input" >Input</a></td><td class=SDescription>This property allows you to set the input component for the output component. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.OnDone" >OnDone</a></td><td class=SDescription>Raised when the component has finished its job or was stopped asynchronously. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.OnProgress" >OnProgress</a></td><td class=SDescription>OnProgress event is raised periodically to indicate output progress. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.OnThreadException" >OnThreadException</a></td><td class=SDescription>This event is raised if an exception has occurred. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Pause"></a>Pause</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Pause</td></tr></table></blockquote><p>Pauses the output.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Resume"></a>Resume</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Resume</td></tr></table></blockquote><p>Resumes previously paused output.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Run"></a>Run</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Run</td></tr></table></blockquote><p>After an input component has been assigned, call Run to start the audio processing chain.&nbsp; When called, Run returns at once while the actual audio processing goes on in the different thread.&nbsp; You will get <a href="#TAuOutput.OnProgress" class=LProperty id=link49 onMouseOver="ShowTip(event, 'tt29', 'link49')" onMouseOut="HideTip('tt29')">OnProgress</a> events while audio processing continues and an <a href="#TAuOutput.OnDone" class=LProperty id=link50 onMouseOver="ShowTip(event, 'tt30', 'link50')" onMouseOut="HideTip('tt30')">OnDone</a> event when the job is done.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.BlockingRun"></a>BlockingRun</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure BlockingRun</td></tr></table></blockquote><p>In some situations, such as console programs or DUnit test units, background processing is not desirable.&nbsp; In these cases, call BlockingRun to run the output component and wait until all operations are complete before returning from the method.&nbsp; It is only fair to note that since there is no way to abort, pause, or stop the procedure once it has started, if used improperly this method can lock your program.&nbsp; If you are unsure which method to use, use the <a href="#TAuOutput.Run" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt8', 'link51')" onMouseOut="HideTip('tt8')">Run</a> method.&nbsp; Under normal circumstances, call <a href="#TAuOutput.Run" class=LFunction id=link52 onMouseOver="ShowTip(event, 'tt8', 'link52')" onMouseOut="HideTip('tt8')">Run</a> to allow audio processing to go on in the background while your application is free to respond to events.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Stop"></a>Stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure Stop(</td><td class=PParameter nowrap>Async :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>True</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stops the busy component or does nothing if the component is idle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Async: Boolean = True</td><td class=CDLDescription>If this parameter value is set to True (the default), Stop is called in an asynchronous mode.&nbsp; In this mode the method returns at once and OnDone event is raised when output is actually finished.&nbsp; If this parameter is set to False the Stop method is called in blocking mode.&nbsp; In this mode it returns only after the output is actually done.&nbsp; No event is raised in this case.</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Delay"></a>Delay</h3><div class=CBody><p>Sets the delay, affects CPU usage.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.ThreadPriority"></a>ThreadPriority</h3><div class=CBody><p>This property allows you to set the priority of the output thread.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Progress"></a>Progress</h3><div class=CBody><p>Read Progress to get the output progress in percents.&nbsp; This value is meaningful only after the input component has been set and only if the input component can tell the size of its stream.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Status"></a>Status</h3><div class=CBody><p>This read only property indicates the output component&rsquo;s current status.&nbsp; Possible values are:</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tosPlaying</td><td class=CDLDescription>the component is performing its task;</td></tr><tr><td class=CDLEntry>tosPaused</td><td class=CDLDescription>the component is paused (the <a href="#TAuOutput.Pause" class=LFunction id=link53 onMouseOver="ShowTip(event, 'tt6', 'link53')" onMouseOut="HideTip('tt6')">Pause</a> method was called)</td></tr><tr><td class=CDLEntry>tosIdle</td><td class=CDLDescription>the component is idle</td></tr></table></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.TimeElapsed"></a>TimeElapsed</h3><div class=CBody><p>The time in seconds that has passed since the playback was started.&nbsp; Useful for real time components like <a href="ACS_DXAudio-pas.html#TDXAudioOut" class=LClass id=link54 onMouseOver="ShowTip(event, 'tt31', 'link54')" onMouseOut="HideTip('tt31')">TDXAudioOut</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.ExceptionMessage"></a>ExceptionMessage</h3><div class=CBody><p>Most exceptions that may occur during NewAC operation are suppressed.&nbsp; If an exception occurs, the operation is stopped and the <a href="#TAuOutput.OnThreadException" class=LProperty id=link55 onMouseOver="ShowTip(event, 'tt32', 'link55')" onMouseOut="HideTip('tt32')">OnThreadException</a> event is raised.&nbsp; ExceptionMessage holds the exception text.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Input"></a>Input</h3><div class=CBody><p>This property allows you to set the input component for the output component.&nbsp; The valid input components must be descendants of <a href="#TAuInput" class=LClass id=link56 onMouseOver="ShowTip(event, 'tt11', 'link56')" onMouseOut="HideTip('tt11')">TAuInput</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnDone"></a>OnDone</h3><div class=CBody><p>Raised when the component has finished its job or was stopped asynchronously.&nbsp; From this event handler you can perform any action on the output component, even remove the component itself!</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnProgress"></a>OnProgress</h3><div class=CBody><p>OnProgress event is raised periodically to indicate output progress.&nbsp; Use <a href="#TAuOutput.Progress" class=LProperty id=link57 onMouseOver="ShowTip(event, 'tt33', 'link57')" onMouseOut="HideTip('tt33')">Progress</a> property to get the progress value.&nbsp; OnProgress event is sent asynchronously and you can perform any action on the output component from the event handler.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnThreadException"></a>OnThreadException</h3><div class=CBody><p>This event is raised if an exception has occurred.&nbsp; Exception string is stored in <a href="#TAuOutput.ExceptionMessage" class=LProperty id=link58 onMouseOver="ShowTip(event, 'tt34', 'link58')" onMouseOut="HideTip('tt34')">ExceptionMessage</a>.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuStreamedInput"></a>TAuStreamedInput</h2><div class=CBody><p>A descendant of <a href="#TAuInput" class=LClass id=link61 onMouseOver="ShowTip(event, 'tt11', 'link61')" onMouseOut="HideTip('tt11')">TAuInput</a> to deal with streams.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.SeekInternal" id=link59 onMouseOver="ShowTip(event, 'tt12', 'link59')" onMouseOut="HideTip('tt12')">SeekInternal</a></td><td class=SDescription>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuStreamedInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.EndSample" >EndSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Loop" >Loop</a></td><td class=SDescription>If set to True, the input loops (i.e. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.StartSample" >StartSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Stream" >Stream</a></td><td class=SDescription>Use this property to set the input data stream for the input component. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.Seek" id=link60 onMouseOver="ShowTip(event, 'tt13', 'link60')" onMouseOut="HideTip('tt13')">Seek</a></td><td class=SDescription>This method allows you to change the current playing position in the the input component. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.SeekInternal"></a>SeekInternal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SeekInternal(</td><td class=PParameter nowrap>var SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean; virtual; abstract</td></tr></table></td></tr></table></blockquote><p>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not.&nbsp; If your component is not seekable then you can write a method like the following.</p><blockquote><pre>function TMyComponent.SeekInternal(var SampleNum : Int64) : Boolean;
begin
  Result := False;
end;</pre></blockquote><p>If you want to make your component seekable you have to implement real seeking in this function.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.EndSample"></a>EndSample</h3><div class=CBody><p>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at.&nbsp; By default it is set to -1 which indicates &ldquo;play to the end of input.&rdquo;&nbsp; Changing this property value has an effect only when the component is idle.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Loop"></a>Loop</h3><div class=CBody><p>If set to True, the input loops (i.e. starts again from the beginning after it is finished).</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.StartSample"></a>StartSample</h3><div class=CBody><p>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from.&nbsp; By default it is set to 0.&nbsp; Calling the <a href="#TAuStreamedInput.Seek" class=LFunction id=link62 onMouseOver="ShowTip(event, 'tt13', 'link62')" onMouseOut="HideTip('tt13')">Seek</a> method when the component is idle has the same effect.&nbsp; Note that when you set <a href="#TAuStreamedInput.StartSample" class=LProperty id=link63 onMouseOver="ShowTip(event, 'tt35', 'link63')" onMouseOut="HideTip('tt35')">StartSample</a> and <a href="#TAuStreamedInput.EndSample" class=LProperty id=link64 onMouseOver="ShowTip(event, 'tt36', 'link64')" onMouseOut="HideTip('tt36')">EndSample</a> properties you define a subrange of the input data.&nbsp; All further operations, such as playback and &lt;Seek&gt;ing will be performed within this subrange.&nbsp; The StartSample and <a href="#TAuStreamedInput.EndSample" class=LProperty id=link65 onMouseOver="ShowTip(event, 'tt36', 'link65')" onMouseOut="HideTip('tt36')">EndSample</a> values also affect the &lt;TotalSamples&gt; and &lt;Size&gt; values, returned by the component.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Stream"></a>Stream</h3><div class=CBody><p>Use this property to set the input data stream for the input component.&nbsp; Any TStream descendant may be used as a data source.&nbsp; Note that if you set Stream, you own it, that is you have to create, destroy and position the stream explicitly (the data playback will be started from the current position within the stream).&nbsp; In TAuFileIn descendants the value assigned to this property takes over the FileName property, i. e. if both Stream and FileName properties are assigned, the stream and not the file will be used for the actual input.&nbsp; To unassign this property set it to nil.&nbsp; If the stream is seekable it will be reset to the beginning at the end of the playback.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Seek"></a>Seek</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Seek(</td><td class=PParameter nowrap>SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This method allows you to change the current playing position in the the input component.&nbsp; If the input component is stopped or paused, calling Seek sets the sample from which the playback will begin.&nbsp; Note that not all inputs are seekable.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>SampleNum</td><td class=CDLDescription>The number of sample (frame) to play from.&nbsp; This number is set relative to the value of <a href="#TAuStreamedInput.StartSample" class=LProperty id=link66 onMouseOver="ShowTip(event, 'tt35', 'link66')" onMouseOut="HideTip('tt35')">StartSample</a>.</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Boolean</td><td class=CDLDescription>A False value indicates that either a seek failed (you are seeking beyond the end of file or the <a href="#TAuStreamedInput.EndSample" class=LProperty id=link67 onMouseOver="ShowTip(event, 'tt36', 'link67')" onMouseOut="HideTip('tt36')">EndSample</a> value) or that the input stream is not seekable.</td></tr></table></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuStreamedOutput"></a>TAuStreamedOutput</h2><div class=CBody><p>A descendant of <a href="#TAuOutput" class=LClass id=link68 onMouseOver="ShowTip(event, 'tt14', 'link68')" onMouseOut="HideTip('tt14')">TAuOutput</a> to deal with streams.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFileIn"></a>TAuFileIn</h2><div class=CBody><p>A descendant of <a href="#TAuStreamedInput" class=LClass id=link74 onMouseOver="ShowTip(event, 'tt15', 'link74')" onMouseOut="HideTip('tt15')">TAuStreamedInput</a> to deal with files and streams.&nbsp; All the components that read files descend from this class.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuFileIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.OpenFile" id=link69 onMouseOver="ShowTip(event, 'tt16', 'link69')" onMouseOut="HideTip('tt16')">OpenFile</a></td><td class=SDescription>Opens the file or stream if it is not already open. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFileIn.CloseFile" id=link70 onMouseOver="ShowTip(event, 'tt17', 'link70')" onMouseOut="HideTip('tt17')">CloseFile</a></td><td class=SDescription>Closes the file opened with <a href="#TAuFileIn.OpenFile" class=LFunction id=link71 onMouseOver="ShowTip(event, 'tt16', 'link71')" onMouseOut="HideTip('tt16')">OpenFile</a>. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.SetStartTime" id=link72 onMouseOver="ShowTip(event, 'tt18', 'link72')" onMouseOut="HideTip('tt18')">SetStartTime</a></td><td class=SDescription>This function is a wrapper around StartSample property, provided for convenience. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFileIn.SetEndTime" id=link73 onMouseOver="ShowTip(event, 'tt19', 'link73')" onMouseOut="HideTip('tt19')">SetEndTime</a></td><td class=SDescription>This function is a wrapper around EndSample property, provided for convenience. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.Valid" >Valid</a></td><td class=SDescription>Read this property to determine if the file is valid. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuFileIn.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.OpenFile"></a>OpenFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure OpenFile; virtual; abstract</td></tr></table></blockquote><p>Opens the file or stream if it is not already open.&nbsp; For performance reasons the file is opened when any of its data is accessed the first time and is then kept open until it is done with.&nbsp; The descendants&rsquo; FileOpen implementations use the FOpened constant to check if the file is already opened.</p><h4 class=CHeading>Note</h4><p>This method is called internally by <a href="#TAuInput.Init" class=LFunction id=link75 onMouseOver="ShowTip(event, 'tt4', 'link75')" onMouseOut="HideTip('tt4')">TAuInput.Init</a>, you should never call it directly.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.CloseFile"></a>CloseFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure CloseFile; virtual; abstract</td></tr></table></blockquote><p>Closes the file opened with <a href="#TAuFileIn.OpenFile" class=LFunction id=link76 onMouseOver="ShowTip(event, 'tt16', 'link76')" onMouseOut="HideTip('tt16')">OpenFile</a>.&nbsp; Sets the FOpened constant to 0.</p><h4 class=CHeading>Note</h4><p>This method is called internally by <a href="#TAuInput.Flush" class=LFunction id=link77 onMouseOver="ShowTip(event, 'tt5', 'link77')" onMouseOut="HideTip('tt5')">TAuInput.Flush</a>, you should never call it directly.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.SetStartTime"></a>SetStartTime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetStartTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This function is a wrapper around StartSample property, provided for convenience.&nbsp; It allows you to set playback start position in minutes and seconds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Minutes : LongWord</td><td class=CDLDescription>Minutes</td></tr><tr><td class=CDLEntry>Seconds : LongWord</td><td class=CDLDescription>Seconds</td></tr></table><h4 class=CHeading>Note</h4><blockquote><pre>SetStartTime(1, 30);</pre></blockquote><p>and</p><blockquote><pre>SetStartTime(0, 90);</pre></blockquote><p>are both allowed.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.SetEndTime"></a>SetEndTime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetEndTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This function is a wrapper around EndSample property, provided for convenience.&nbsp; It allows you to set playback stop position in minutes and seconds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Minutes : LongWord</td><td class=CDLDescription>Minutes</td></tr><tr><td class=CDLEntry>Seconds : LongWord</td><td class=CDLDescription>Seconds</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Valid"></a>Valid</h3><div class=CBody><p>Read this property to determine if the file is valid.&nbsp; It is a good practice to check this property before performing other operations on audio stream.&nbsp; Note however that True returned by Valid doesn&rsquo;t guarantee the file is fully playable.&nbsp; It indicates only that the file could be opened successfully and the file headers were correct.&nbsp; This property also returns False if the decoder library required to play the file cannot be loaded.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.WideFileName"></a>WideFileName</h3><div class=CBody><p>Allows you to handle file names in Unicode.&nbsp; Setting its value overrides the value set to FileName.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Filename"></a>Filename</h3><div class=CBody><p>File name in 8-bit encoding.&nbsp; Setting this property&rsquo;s value overrides the value set to <a href="#TAuFileIn.WideFileName" class=LProperty id=link78 onMouseOver="ShowTip(event, 'tt37', 'link78')" onMouseOut="HideTip('tt37')">WideFileName</a>.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuTaggedFileIn"></a>TAuTaggedFileIn</h2><div class=CBody><p>Descends from <a href="#TAuFileIn" class=LClass id=link79 onMouseOver="ShowTip(event, 'tt20', 'link79')" onMouseOut="HideTip('tt20')">TAuFileIn</a>, this class is an ancestor of the file input components that use tags.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuTaggedFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuTaggedFileIn.CommonTags" >CommonTags</a></td><td class=SDescription>Contains the tag values common to the different tag formats</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuTaggedFileIn.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuTaggedFileIn.CommonTags"></a>CommonTags</h3><div class=CBody><p>Contains the tag values common to the different tag formats</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFileOut"></a>TAuFileOut</h2><div class=CBody><p>A descendant of <a href="#TAuStreamedOutput" class=LClass id=link80 onMouseOver="ShowTip(event, 'tt21', 'link80')" onMouseOut="HideTip('tt21')">TAuStreamedOutput</a> to deal with files and streams.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuFileOut.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileOut.FileMode" >FileMode</a></td><td class=SDescription>This property can take one of two values foRewrite (default) and foAppend. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuFileOut.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileOut.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuFileOut.ShareMode" >ShareMode</a></td><td class=SDescription>This property stores the share mode flags (like fmShareExclusive, fmShareDenyRead) that are applied to the files being created. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.FileMode"></a>FileMode</h3><div class=CBody><p>This property can take one of two values foRewrite (default) and foAppend.&nbsp; In the foRewrite mode the new file overwrites the previous one (if it existed).&nbsp; In the foAppend mode the new content is added to the existing.&nbsp; Currently only <a href="ACS_Wave-pas.html#TWaveOut" class=LClass id=link81 onMouseOver="ShowTip(event, 'tt38', 'link81')" onMouseOut="HideTip('tt38')">TWaveOut</a> and <a href="ACS_Vorbis-pas.html#TVorbisOut" class=LClass id=link82 onMouseOver="ShowTip(event, 'tt39', 'link82')" onMouseOut="HideTip('tt39')">TVorbisOut</a> components support this mode.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.WideFileName"></a>WideFileName</h3><div class=CBody><p>Allows you to handle file names in Unicode.&nbsp; Setting its value overrides the value set to FileName.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.Filename"></a>Filename</h3><div class=CBody><p>File name in 8-bit encoding.&nbsp; Setting this property&rsquo;s value overrides the value set to <a href="#TAuFileOut.WideFileName" class=LProperty id=link83 onMouseOver="ShowTip(event, 'tt40', 'link83')" onMouseOut="HideTip('tt40')">WideFileName</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.ShareMode"></a>ShareMode</h3><div class=CBody><p>This property stores the share mode flags (like fmShareExclusive, fmShareDenyRead) that are applied to the files being created.&nbsp; Since Delphi 2010 has some problems with these flags, the default value is zero.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuTaggedFileOut"></a>TAuTaggedFileOut</h2><div class=CBody><p>Descends from <a href="#TAuFileOut" class=LClass id=link84 onMouseOver="ShowTip(event, 'tt22', 'link84')" onMouseOut="HideTip('tt22')">TAuFileOut</a>, this class is an ancestor of the file output components that use Id3v* tags.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuConverter"></a>TAuConverter</h2><div class=CBody><p>Descends from <a href="#TAuInput" class=LClass id=link85 onMouseOver="ShowTip(event, 'tt11', 'link85')" onMouseOut="HideTip('tt11')">TAuInput</a>, the base class for all converter components.&nbsp; Converters are laced between input and output in the audio-processing chain.&nbsp; See NewAC Introduction for more information on the converters.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuConverter.Input" >Input</a></td><td class=SDescription>Like the output components, converters can be assigned an input. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuConverter.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuConverter.Input"></a>Input</h3><div class=CBody><p>Like the output components, converters can be assigned an input.&nbsp; Unlike the output components converters themselves can be input sources (for output components and other converters).</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAudioTap"></a>TAudioTap</h2><div class=CBody><p>This is the base class for all &ldquo;audio tap components&rdquo;.&nbsp; Technically audio taps are converters as they sit between input and output components in the audio-processing chain.&nbsp; But audio taps do not modify audio data passing trough them.&nbsp; Instead they write everithing passing through into some audio file.</p><p>The main goal of audio tap components is to make the audio-processing chain to perform several tasks at once: record while you listen, save data at several formats simultaneously, etc.</p><p>Descends from <a href="#TAuConverter" class=LClass id=link90 onMouseOver="ShowTip(event, 'tt41', 'link90')" onMouseOut="HideTip('tt41')">TAuConverter</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAudioTap.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.StartRecord" id=link86 onMouseOver="ShowTip(event, 'tt23', 'link86')" onMouseOut="HideTip('tt23')">StartRecord</a></td><td class=SDescription>Call this method to start recording audio data passing through an audio tap.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAudioTap.StopRecord" id=link87 onMouseOver="ShowTip(event, 'tt24', 'link87')" onMouseOut="HideTip('tt24')">StopRecord</a></td><td class=SDescription>Call this method to stop recording.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.PauseRecord" id=link88 onMouseOver="ShowTip(event, 'tt25', 'link88')" onMouseOut="HideTip('tt25')">PauseRecord</a></td><td class=SDescription>Call this method to pause recording.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAudioTap.ResumeRecord" id=link89 onMouseOver="ShowTip(event, 'tt26', 'link89')" onMouseOut="HideTip('tt26')">ResumeRecord</a></td><td class=SDescription>Call this method to resume paused recording.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TAudioTap.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.Status" >Status</a></td><td class=SDescription>Read this property to get the component status. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAudioTap.WideFileName" >WideFileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in Unicode charset. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.FileName" >FileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in 8-bit charset. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.StartRecord"></a>StartRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StartRecord</td></tr></table></blockquote><p>Call this method to start recording audio data passing through an audio tap.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.StopRecord"></a>StopRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StopRecord</td></tr></table></blockquote><p>Call this method to stop recording.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.PauseRecord"></a>PauseRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure PauseRecord</td></tr></table></blockquote><p>Call this method to pause recording.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.ResumeRecord"></a>ResumeRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure ResumeRecord</td></tr></table></blockquote><p>Call this method to resume paused recording.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.Status"></a>Status</h3><div class=CBody><p>Read this property to get the component status.&nbsp; The possible values are tosIdle (the component passes data through without recording), tosPlaying (the component records data) and tpsPaused.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.WideFileName"></a>WideFileName</h3><div class=CBody><p>Use this property to set or get the file name the data is written to in Unicode charset.&nbsp; The value assigned to this prperty overrides <a href="#TAudioTap.FileName" class=LProperty id=link91 onMouseOver="ShowTip(event, 'tt42', 'link91')" onMouseOut="HideTip('tt42')">FileName</a></p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.FileName"></a>FileName</h3><div class=CBody><p>Use this property to set or get the file name the data is written to in 8-bit charset.&nbsp; The value assigned to this prperty overrides <a href="#TAudioTap.WideFileName" class=LProperty id=link92 onMouseOver="ShowTip(event, 'tt43', 'link92')" onMouseOut="HideTip('tt43')">WideFileName</a></p></div></div></div>

</div><!--Content-->


<div id=Footer>Content &copy; 2008-2010 Andrei Borovsky. Design &copy; 2008 Wayne Thursby. <b><u><a href="http://symmetrica.net/newac">Go to the project's main page</a></u></b>&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>NewAC<div class=MSubTitle>v2.5</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Documentation</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../doc/txt/introduction-txt.html">Quick Introduction to NewAC</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/about_documentation-txt.html">About the Documentation</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/cwguide-txt.html">Component Writer&rsquo;s Guide</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/license-txt.html">License</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/tips_and_tricks-txt.html">Tips &amp; Tricks</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/newac-txt.html">About New Audio Components</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/features-txt.html">NewAC Main Features List</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Main Units</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="ACS_AudioMix-pas.html">ACS_AudioMix</a></div></div><div class=MEntry><div class=MFile><a href="ACS_CDROM-pas.html">ACS_CDROM</a></div></div><div class=MEntry><div class=MFile id=MSelected>ACS_Classes</div></div><div class=MEntry><div class=MFile><a href="ACS_Converters-pas.html">ACS_Converters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_DXAudio-pas.html">ACS_DXAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_FLAC-pas.html">ACS_FLAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Filters-pas.html">ACS_Filters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_LAME-pas.html">ACS_LAME</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MAC-pas.html">ACS_MAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MPC-pas.html">ACS_MPC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_OptimFROG-pas.html">ACS_OptimFROG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_smpeg-pas.html">ACS_SMPEG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Streams-pas.html">ACS_Streams</a></div></div><div class=MEntry><div class=MFile><a href="ACS_TTA-pas.html">ACS_TTA</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Tags-pas.html">ACS_Tags</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Vorbis-pas.html">ACS_Vorbis</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WavPack-pas.html">ACS_WavPack</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Wave-pas.html">ACS_Wave</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WinMedia-pas.html">ACS_WinMedia</a></div></div><div class=MEntry><div class=MFile><a href="AudioDMO-pas.html">AudioDMO</a></div></div><div class=MEntry><div class=MFile><a href="AudioPass-pas.html">AudioPass</a></div></div><div class=MEntry><div class=MFile><a href="AuSampleRate-pas.html">AuSampleRate</a></div></div><div class=MEntry><div class=MFile><a href="AuASIO-pas.html">AuASIO</a></div></div><div class=MEntry><div class=MFile><a href="AuSynch-pas.html">AuSynch</a></div></div><div class=MEntry><div class=MFile><a href="NewACDTS-pas.html">NewACDTS</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_AVI-pas.html">NewAC_AVI</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_DSP-pas.html">NewAC_DSP</a></div></div><div class=MEntry><div class=MFile><a href="NewACAC3-pas.html">NewACAC3</a></div></div><div class=MEntry><div class=MFile><a href="NewACIndicators-pas.html">NewACIndicators</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Utility Units</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Procs-pas.html">ACS_Procs</a></div></div><div class=MEntry><div class=MFile><a href="acs_reg-pas.html">ACS_Reg</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Types-pas.html">ACS_Types</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Tutorials</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../demos/Tutorial/AudioProcessor/Main-pas.html">Audio Processor</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Tutorial/ComponentsDemo/ComponentsDemo-pas.html">Components Demo</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Recorders-rippers/Rip'n'listen/Main-pas.html">Rip&rsquo;n&rsquo;Listen Demo</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Properties.html">Properties</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Types.html">Types</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Properties">Properties</option><option value="Types">Types</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([2], 6);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure GetData(</td><td class=PParameter nowrap>var Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>var Bytes :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>); virtual</td></tr></table></td></tr></table></blockquote>This method retrieves input data. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function CopyData(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;Integer</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote>Writes no more than BufferSize data into Buffer</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function FillBuffer(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;LongWord;</td></tr><tr><td></td><td class=PParameter nowrap>var EOF :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote>The same as CopyData but tries to fill the Buffer. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Init</td></tr></table></blockquote>This method prepares input component for reading data. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Flush</td></tr></table></blockquote>This method closes the current input (opened with Init), clearing up all temporary structures allocated during data transfer. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Pause</td></tr></table></blockquote>Pauses the output.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Resume</td></tr></table></blockquote>Resumes previously paused output.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Run</td></tr></table></blockquote>After an input component has been assigned, call Run to start the audio processing chain. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure BlockingRun</td></tr></table></blockquote>In some situations, such as console programs or DUnit test units, background processing is not desirable. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure Stop(</td><td class=PParameter nowrap>Async :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>True</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stops the busy component or does nothing if the component is idle.</div></div><div class=CToolTip id="tt11"><div class=CClass>The ancestor class for all input components.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SeekInternal(</td><td class=PParameter nowrap>var SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean; virtual; abstract</td></tr></table></td></tr></table></blockquote>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not. </div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Seek(</td><td class=PParameter nowrap>SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This method allows you to change the current playing position in the the input component. </div></div><div class=CToolTip id="tt14"><div class=CClass>The ancestor class for all output components.</div></div><div class=CToolTip id="tt15"><div class=CClass>A descendant of TAuInput to deal with streams.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure OpenFile; virtual; abstract</td></tr></table></blockquote>Opens the file or stream if it is not already open. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure CloseFile; virtual; abstract</td></tr></table></blockquote>Closes the file opened with OpenFile. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetStartTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This function is a wrapper around StartSample property, provided for convenience. </div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetEndTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This function is a wrapper around EndSample property, provided for convenience. </div></div><div class=CToolTip id="tt20"><div class=CClass>A descendant of TAuStreamedInput to deal with files and streams. </div></div><div class=CToolTip id="tt21"><div class=CClass>A descendant of TAuOutput to deal with streams.</div></div><div class=CToolTip id="tt22"><div class=CClass>A descendant of TAuStreamedOutput to deal with files and streams.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StartRecord</td></tr></table></blockquote>Call this method to start recording audio data passing through an audio tap.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StopRecord</td></tr></table></blockquote>Call this method to stop recording.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure PauseRecord</td></tr></table></blockquote>Call this method to pause recording.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure ResumeRecord</td></tr></table></blockquote>Call this method to resume paused recording.</div></div><div class=CToolTip id="tt27"><div class=CClass>Performs audio recording from a sound card using the DirectX API. </div></div><div class=CToolTip id="tt28"><div class=CProperty>A read only property which returns input data size in bytes. </div></div><div class=CToolTip id="tt29"><div class=CProperty>OnProgress event is raised periodically to indicate output progress. </div></div><div class=CToolTip id="tt30"><div class=CProperty>Raised when the component has finished its job or was stopped asynchronously. </div></div><div class=CToolTip id="tt31"><div class=CClass>Performs audio playback using the DirectX API. </div></div><div class=CToolTip id="tt32"><div class=CProperty>This event is raised if an exception has occurred. </div></div><div class=CToolTip id="tt33"><div class=CProperty>Read Progress to get the output progress in percents. </div></div><div class=CToolTip id="tt34"><div class=CProperty>Most exceptions that may occur during NewAC operation are suppressed. </div></div><div class=CToolTip id="tt35"><div class=CProperty>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from. </div></div><div class=CToolTip id="tt36"><div class=CProperty>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at. </div></div><div class=CToolTip id="tt37"><div class=CProperty>Allows you to handle file names in Unicode. </div></div><div class=CToolTip id="tt38"><div class=CClass>Wave file encoder. </div></div><div class=CToolTip id="tt39"><div class=CClass>The Ogg Vorbis encoder component. </div></div><div class=CToolTip id="tt40"><div class=CProperty>Allows you to handle file names in Unicode. </div></div><div class=CToolTip id="tt41"><div class=CClass>Descends from TAuInput, the base class for all converter components. </div></div><div class=CToolTip id="tt42"><div class=CProperty>Use this property to set or get the file name the data is written to in 8-bit charset. </div></div><div class=CToolTip id="tt43"><div class=CProperty>Use this property to set or get the file name the data is written to in Unicode charset. </div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>